Applications created by external developers to work with a system provided by another tend to be operated external to the system. The external developers incur the costs of running the created application including costs in trying to promote availability of the created application. The external developers may receive compensation from an operator of the system, from advertisers providing content to be available on the application, and the like. However, the compensation may be insufficient to cover the expenses incurred or to justify the development of a new application.
The external developers are not alone in increased cost. A significant issue for an operator of the system is that the use of many low-level application program interface (APIs) are needed by external developers to create an application with value. A developer may use a low-level API for each call to a server located in the system. For instance, a simple application may require one call to get information about a set of items, then calls for data about each item, then more calls for information about the users that created those items. So a simple search query could easily become a series of hundreds of remote API calls. If these calls had to be done sequentially, and each call took approximately 100 ms, such a page could take many minutes to create.
High-level API's, in contrast to the low-level API's, may handle the simple interactions of many lower-level APIs in a controlled way to minimize the number of sequential calls. The high-level APIs may include the many calls of the low-level APIs but may be optimized for performance (e.g., some of the calls may be performed simultaneously). However, because high-level APIs are typically created to address the performance issues of having a complex set of logic to render the final resultant data set, these higher-level APIs are often representative of very specific use-cases and may be unrelated to an application created an external developer. Because of this, an external developer may be limited to taking the data from an existing page and combining it with additional data on the client's side.